Network devices such as routers are used to forward traffic in packet-based networks. A typical router is a chassis-based system that includes a control module, which performs higher level management functions, and line cards, which provide the interface between the router and other network devices (i.e., servers, workstations, switches, other routers, etc.) A router generates forwarding information that maps traffic destination information to next hop information. The forwarding information is typically generated and managed in the control module of a router by a route processor. The forwarding information is used by a forwarding engine to make forwarding decisions. First generation routers typically used a centralized architecture to make forwarding decisions for traffic that is received on line cards. In a centralized architecture, forwarding decisions for traffic received on all of the line cards of a router are made by a single central forwarding engine that is supported by a single instance of an operating system. Some newer generation routers use a distributed architecture to make forwarding decisions for incoming traffic. In a distributed architecture router, forwarding decisions for traffic received on the line cards can be made by forwarding engines that exist at each line card. The line card forwarding engines are supported by card-specific instances of an operating system. In order for forwarding decisions to be made locally by the line card forwarding engines, the line card forwarding engines must have access to the forwarding information that is maintained at the control module. Direct access to the forwarding information is accomplished by maintaining an instance of the forwarding information at each line card. In order to maintain instances of the forwarding information at each line card, the forwarding information must be distributed to all of the forwarding engines in the router. Distributing the forwarding information throughout a router with a distributed processing architecture is not a trivial task.
In view of the growing use of distributed architecture routers, what is needed is a fast and reliable technique for distributing forwarding information throughout a distributed architecture router.